#ifndef __GSM_PDP_H_
#define __GSM_PDP_H_


#include "gsm.h"

#define lgsm_pdp_add_context               PDP_Command_AddContext


struct PDPInterface {

  /*********************Replies to methods*****************/

  void (*attach_gprs_network_reply) (void* ipc_data);

  void (*detach_gprs_network_reply) (void* ipc_data);

  void (*gprs_context_activation) (void* ipc_data);

  void (*gprs_context_no_activation) (void* ipc_data);

  void (*socket_configuration_extend) (void* ipc_data);

  void (*ppp_param_config) (void* ipc_data);

	void (*socket_configuration) (void* ipc_data);

  void (*socket_dial) (void* ipc_data);

  void (*ftp_open) (void* ipc_data);

  void (*ftp_close) (void* ipc_data);

  void (*ftp_time_out) (void* ipc_data);

  void (*ftp_get_filesize) (void* ipc_data);

  void (*socket_shutdown) (void* ipc_data);

	
  void (*socket_restore) (void* ipc_data);

  void (*socket_inactive_timeout) (void* ipc_data);

  void (*socket_set) (void* ipc_data);

  void (*socket_open) (void* ipc_data);

  void (*selet_flow_control) (void* ipc_data);


  void (*list_gprs_classes_reply) (void* ipc_data,
                                   const char **classes);
	
  void (*select_gprs_class_reply) (void* ipc_data);


  void (*activate_reply) (void* ipc_data);


  void (*deactivate_reply) (void* ipc_data);


  void (*select_context_reply) (void* ipc_data);

  void (*add_context_reply) (void* ipc_data,
                             bool result);

  void (*delete_context_reply) (void* ipc_data);

  void (*list_contexts_reply) (void* ipc_data,
                               const char **contexts);
	
  void (*request_gprs_service_reply) (void* ipc_data,
                               const char **contexts);

  void (*pdp_context_act_config) (void* ipc_data,
							   bool result);
  
  void (*pdp_context_activation) (void* ipc_data,
                             bool result);

  void (*dns_response_cach) (void* ipc_data,
                             bool result);

  void (*cfg_http_params) (void* ipc_data);
	 
  void (*context_activated) (void* ipc_data, int id);

  void (*context_deactivated) (void* ipc_data, int id);

  void (*context_changed) (void* ipc_data, int id);
  
  /*********************Method errors**********************************/

  void (*attach_gprs_network_error) (void* ipc_data,
                                   ascii *error);

  void (*list_gprs_classes_error) (void* ipc_data,
                                   ascii *error);

  void (*select_gprs_class_error) (void* ipc_data,
                                   ascii *error);
	
  void (*activate_error) (void* ipc_data,
                          ascii *error);

  void (*deactivate_error) (void* ipc_data,
                            ascii *error);

  void (*select_context_error) (void* ipc_data,
                                ascii *error);

  void (*add_context_error) (void* ipc_data,
                             ascii *error);

  void (*delete_context_error) (void* ipc_data,
                                ascii *error);

  void (*list_contexts_error) (void* ipc_data,
                               ascii *error);

  void (*request_gprs_service_error) (void* ipc_data,
                               ascii *error);
};



extern void PDP_Command_AddContext ( void* ipc_data, int index, const char *APN );

#endif


